package br.gov.dataprev.treinamento.ws;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebParam.Mode;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.xml.ws.RequestWrapper;

import br.gov.dataprev.treinamento.ejb.excecao.ExcecaoNegocio;
import br.gov.dataprev.treinamento.ejb.modelo.Produto;

@WebService(name = "ProdutoWs",
        targetNamespace = "http://dataprev.gov.br/produto")
@SOAPBinding(style = Style.RPC, use = Use.ENCODED, parameterStyle = ParameterStyle.WRAPPED)
public interface ProdutoWs {

   
    @WebMethod(operationName = "inserirProduto")
    @RequestWrapper(className = "br.gov.dataprev.treinamento.ejb.modelo.Produto")
    public Produto inserirProduto(
            @WebParam(name = "produto", mode = Mode.IN, header = false) Produto produto)
            throws ExcecaoNegocio;

    @WebMethod(operationName = "alterarProduto")
    @RequestWrapper(className = "br.gov.dataprev.treinamento.ejb.modelo.Produto")
    public Produto alterarProduto(
            @WebParam(name = "produto", partName = "produto") Produto produto)
            throws ExcecaoNegocio;

    @WebMethod(operationName = "excluirProduto")
    @RequestWrapper(className = "br.gov.dataprev.treinamento.ejb.modelo.Produto")
    public Produto excluirProduto(
            @WebParam(name = "produto", mode = Mode.IN, header = false) Produto produto)
            throws ExcecaoNegocio;

}
